// 仅仅反转字母------917
// 给你一个字符串 s ，根据下述规则反转字符串：
// 所有非英文字母保留在原有位置。
// 所有英文字母（小写或大写）位置反转。
// 返回反转后的 s 。


#include <stdio.h>
#include <stdbool.h>
#include <string.h>
void Change(char *a,char *b)
{
    char temp = *a;
    *a = *b;
    *b = temp;
}

int IsLetter(char s)
{
    if((s <= 'z'&& s >= 'a') || (s <= 'Z' && s >= 'A'))
    return true;
    return false;
}

char* reverseOnlyLetters(char* s) 
{
    int len = strlen(s);
    int left = 0;
    int right = len - 1;
    while(1)
    {
        while(left < right && !IsLetter(s[left]))
        {
            left++;
        }
        while(left < right && !IsLetter(s[right]))
        {
            right--;
        }
        if(left >= right)
        break;

        Change(s + left,s + right);
        left++;
        right--;
    }
    return s;    
}

int main()
{
    char a[13] = "a-bC-dEf-ghIj";
    printf("%s\n",reverseOnlyLetters(a));
    return 0;
}